import torch

# 如何自动求导
# 步骤一，在需要求导的数据中加入属性requires_grad=True
#        根据需求，还可以设置device （CPU/GPU）
#        求导的原数据必须是浮点类型

device = torch.device("cpu")
# device = torch.device("cuda:0")

a = torch.arange(1, 8, dtype=torch.float, requires_grad=True, device=device)
b = 2 * a ** 2 # 4a

# 步骤二，需要b开启整个求导的过程 backward(),注意执行该函数必须是一个值，不可以是多个
c = torch.sum(b)
# c = torch.mean(b)
c.backward()

# 步骤三：对a使用grad属性，获取导数
print(a)
print(a.grad)

# 求b对a的导数
